package com.example.demo.day0304;

public class Demo {
    public static void main(String[] args) {
//        Thread t0 = new DemoThread();//继承Thread类的线程
//        t0.start();//启动线程，开始运行run方法的代码
//        Thread t1 = new DemoThread();//继承Thread类的线程
//        t1.start();//启动线程，开始运行DemoThread中的run方法的代码
//        Thread t2 = new Thread(new DemoRunnable());//用Thread类创建一个DemoRunnable类型的实例
//        t2.start();//启动线程，开始运行run方法的代码
        Runnable run = new DemoRunnable();
        Thread t3 = new Thread(run,"t-1");
        Thread t4 = new Thread(run,"t-2");
        t3.start();
        t4.start();//都使用了count，共享DemoRunnable类的对象，很适合多个相同线程来处理同一份资源

        System.out.println("===================1");
        System.out.println("===================2");
        System.out.println("===================3");//sout与run方法的代码并行运行，没有先后关系
        // 控制台输出的结果就是两条并行程序的运行结果总和
        //代码运行会保持各自的顺序
        //多线程具有异步性，异步是相对于t0.start()的主程序而言


    }
}
